#include<iostream>
#include<string>
#include<stack>
#include<cctype>

int flag;   //标志位，为-1表示输入错误
int Float=0;//除法标志位
double calculate(std::string& str)
{
    std::stack<double> nums;
    double num=0;
    char op='+';
    for(int i=0;i<str.size();i++)
    {
        char c=str[i];
        if(c=='/') Float=1;
        //错误判断条件
        if(i==0 && !isdigit(c)) 
        {
            flag=-1;
            return flag;
        }
        if(i==str.size()-1 && !isdigit(c)) 
        {
            flag=-1;
            return flag;
        }
        //计算当前整数
        if(isdigit(c))
        {
            num=num*10+(c-'0');
        }
        //计算操作符
        if(!isdigit(c) || i==str.size()-1)
        {
            if(op=='+')
            {
                nums.push(num);
            }
            else if(op=='-')
            {
                nums.push(-num);
            }
            else if(op=='*')
            {
                int top=nums.top(); nums.pop();
                nums.push(top*num);
            }
            else if(op=='/')
            {
                double top=nums.top();nums.pop();
                nums.push(top/num);
            }
            op=c;
            num=0;
        }
    }
    //计算结果
    double ret=0;
    while(!nums.empty())
    {
        ret+=nums.top();nums.pop();
    }
    return ret;
}
int main()
{
    std::string str;
    while(1)
    {
        flag=1;//标志位，为-1表示输入错误
        std::cout<<"Calculator> ";
        str.clear();
        std::cin>>str;
        double ret=calculate(str);
        if(flag==-1)
        {
            std::cout<<"输入有误，请重新输入"<<std::endl;
        }
        else
        {
            if(Float)
            {
                //算式中出现除法，需要保留小数
                printf("%.1lf\n",ret);
            }
            else
            {
                //算式中没有出现除法，无需保留小数
                printf("%d\n",static_cast<int>(ret));
            }
        }
    }
    return 0;
}